proc txHtml::InitWidgetRec { w } {upvar \#0 $w data
tixChainMethod $w InitWidgetRec
set data(booktxt) {}
set data(bookref) {}
set data(url) {}
set data(bookindex) -1}
proc txHtml::ConstructWidget { w } {upvar #0 $w data
txHtml::config-forms $w $data(-forms)
tixChainMethod $w ConstructWidget
Require txText 5
set data(w:html) [txText [$w subwidget frame].html -express 1 -state view -wrap word -width $data(-width) -height $data(-height) ]
set express [$data(w:html) subwidget express]
set data(w:express) $express
Require msg 2
$express add left back -text [Msg def Html Back "Last"] -underline [Msg def Html Backu 0] -image [Msg def Html Backi ""] -command "txHtml:Bookmark $w back"
$express add left forw -text [Msg def Html Fore "Next"] -underline [Msg def Html Foreu 0] -image [Msg def Html Forei ""] -command "txHtml:Bookmark $w forw"
$express add left home -text [Msg def Html Home "Home"] -underline [Msg def Html Homeu 0] -image [Msg def Html Homei ""] -command "txHtml:Bookmark $w home"
$express add left mark -text [Msg def Html Mark "Bookmark"] -underline [Msg def Html Marku 0] -image [Msg def Html Marki ""] -command "txHtml:Bookmark $w mark"
$express add right end -text [Msg def Html Close "Close"] -underline [Msg def Html Closeu 0] -image [Msg def Html Closei ""] -command "destroy $w"
set pr [$express add right print -text [Msg def Html Print "Print"] -underline [Msg def Html Printu 0] -image [Msg def Html Printi ""] ]
$pr config -command "txHtml:Print $w $pr"
pack $data(w:html) -fill both -expand y -padx 5 -pady 5
set data(w:text) [$data(w:html) subwidget text]
tixSetMegaWidget $data(w:text) $w
HMinit_win $data(w:text)}
proc txHtml::Destructor { w } {upvar \#0 $w data
upvar \#0 HM$data(w:text) html
catch {unset html}
tixUnsetMegaWidget $data(w:text)
tixChainMethod $w Destructor}
proc txHtml::config-forms { w val } {if { $val } {Require htmlforms 1
catch {rename HMsubmit_form txHtml:SubmitForm
rename txHtml::submit HMsubmit_form}}}
proc txHtml::show { w } {upvar \#0 $w data
tixChainMethod $w show
update
if { $data(-showbook)} {txHtml:Bookmark $w mark}}
proc txHtml::set { w page } {upvar \#0 $w data
global HM.text Url
global Running message
set fragment ""
regexp {([^\#]*)\#(.+)} "$page" dummy page fragment
if {$page == ""} {HMgoto $data(w:text) "$fragment"
proc txHtml:DoPrint { url } {set date [clock format [clock seconds] -format "%Y/%m/%d-%H:%M"]
set cmd [Replace [Cfg get Printer Command] [list "%f=$url" "%d=[Cfg get Printer Document]" "%t=[Cfg get Printer Format]" "%c=[Cfg get Printer Copies]" "%u=[Cfg get Printer User]" "%T=$date" ]]
eval exec $cmd}
proc txHtml:Bookmark { w typ args} {upvar \#0 $w data
switch $typ {add {lset $args href txt
set cmd [Replace $data(-urlcmd) [list "%w=$w" "%p=$href"]]
set fname [eval $cmd]
if { $fname==""} {set fname $href}
if { [lsearch -exact $data(bookref) $fname]<0 } {lappend data(bookref) $fname